Fix generated TextEncoder#encode()
return type
#1158
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hey! 👋 This PR fixes the auto-generated return type of
TextEncoder#encode()
. #1047 updated this function to return ajsg::BufferSource
. This generatesArrayBuffer | ArrayBufferView
as the TypeScript type, asjsg::BufferSource
retains the input type when passed back out to JavaScript.TextEnoder::encode()
usesBufferSource::tryAlloc()
though which always gives aUint8Array
:workerd/src/workerd/jsg/buffersource.c++
Line 89 in 2182afd
Therefore, an override has been added to force a
Uint8Array
return type as required by the spec.Fixes #1149